Conditional deferred queuing may provide a capability for delaying message processing according to an established set of rules and/or priorities. In conventional systems, a message may go through a series of queues and processing stages. Each processing block may take a message from the queue, perform an operation on the message, and requeue the message for further processing and/or delivery. In some situations, the processing may need to be delayed, such as when a concurrency limit is exceeded and/or a needed resource is unavailable. With conventional systems, predicting the need to delay processing of the message may be difficult or impossible, so message processing may be delayed for a fixed amount of time. This may lead to idle resources if the fixed delay is too long, or wasted resources if the fixed delay is too short.